package cn.wolfcode.service;

import cn.wolfcode.domain.Employee;
import cn.wolfcode.queryobject.QueryObject;
import cn.wolfcode.resultpage.ResultPage;
import com.github.pagehelper.PageInfo;
import org.apache.ibatis.annotations.Param;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import java.util.List;

public interface IEmployeeService {
    int delete(Long id);

    // 插入带有角色信息(一个员工可有多个角色)的员工表
    void insert(Employee employee, Long[] ids);

    Employee selectOne(Long id);

    List<Employee> listAll();

    // 修改带有角色信息(一个员工可有多个角色)的员工表
    void update(Employee employee, Long[] ids);

    // 分页查询
    PageInfo<Employee> query(QueryObject qo);

    // 用户登录
    Employee login(String username,String password);

    // 修改密码
    void updatePassword(Long id,String oldPassword,String newPassword);

    // 管理员重置密码
    void restPwd (Long id,String newPassword);

    // 批量删除员工
    void deletes(Long[] ids);

    // 通过名字查询员工信息
    Employee checkName(String name);

    // 用户名可以修改的功能(验证功能)
    Employee selectById(Long id);

    // 文件导出
    HSSFWorkbook exportXls();

    // 文件导入
    void importXls(HSSFWorkbook workbook);

    // 修改员工的状态
    void updateState(Long ids,boolean status);

    // 查询角色是销售人员和销售经理角色的信息
    List<Employee> selectByRoleSn(String ... sns);
}
